package com.example.demo2;

/**
 * 使用组合模式 完成一个例子
 * 列出某一目录下 所有的文件和文件夹
 * <p>
 * <p>
 * Entry抽象类,表示目录条目 （文件+文件夹）的抽象类
 */
public abstract class Entry {

    /**
     * 获取文件名
     */
    public abstract String getName();

    /**
     * 获取文件大小
     */
    public abstract int getSize();

    //添加文件夹或文件
    public abstract Entry add(Entry entry);


    // 显示指定目录下的所有信息
    public abstract void printList(String prefix);


    @Override
    public String toString() {
        return getName() + "(" + getSize() + ")";
    }

}
